This invention relates to computer software applications, and more particularly web-based computer software applications known as web services.
Web services are web-based computer software applications which interact with other applications, such as other web services or software applications. Web services may be made publicly available or may be deployed in private environments, such as within a private organisation to enable divisions and/or subsidiaries to exchange data.
Web services are becoming increasingly more centralized in the design. The centrality of web services has led to intensive standardization work related to the documentation of web services and the discovery of web services according to metadata they publish;
Despite such advances, a developer of a software application is still expected to invest considerable time into the integration of web services into the software application. Currently, if a developer wishes to integrate a web service into a software application, this has to be done using ‘tight coupling’, wherein the developer commits to the use of a specific web service and explicitly references that particular web service in the program code of the software application. This has the following drawbacks or limitations:
Web services available at the time of developing the program code may no longer be available at the time of executing the code. It may therefore no longer be possible to use a software application that is tightly coupled to a non-existing web service. This even holds for a case when the web service is available but resides at a different location (e.g. on a different URL).
New web services may become available which provide the same or improved functionality compared to a web service that is tightly coupled to a software application. Execution of the software application may therefore invoke an out-of-date or superseded web service. A great deal of the time and effort can be required to manually search for an appropriate web service when developing the program code of a software application. For example, different repositories (or versions of the same repository) expose different interfaces for searching for a web service, which makes the searching process tedious.